function allReadyEdit() {
    //路径：/NG3Resource/js/JncjCommon.js
    //curForm.on('dataready', function () { }20210508移至edit状态下
    //1.基础函数

    NG.setFormTabKey();//设置表头焦点切换按键 默认Enter键

    //2.获取表头字段对象

    var bill_no = curForm.getItem('bill_no');    //项目编码
    var title = curForm.getItem('title');    //项目名称
    var bill_dt = curForm.getItem('bill_dt');    //日期
    var remarks = curForm.getItem('remarks');    //备注
    var ocode = curForm.getItem('ocode');    //组织
    var empid1 = curForm.getItem('empid1');    //经办人
    var lxrdh = curForm.getItem('lxrdh');    //联系电话
    var gh_dt = curForm.getItem('gh_dt');    //预计还期
    var tbxm = curForm.getItem('tbxm');    //投标项目
    var tbxm_or_yt = curForm.getItem('tbxm_or_yt');    //借证用途
    var tzszt = curForm.getItem('tzszt');    //中标通知状态
    var htzt = curForm.getItem('htzt');    //承包合同状态
    var yszszt = curForm.getItem('yszszt');    //验收证书状态
    var jycs = curForm.getItem('jycs');    //项目借次
    var cfdd = curForm.getItem('cfdd');    //是否存档案室
    var sy = curForm.getItem('sy');    //事由
    var free_sl1 = curForm.getItem('free_sl1');    //中标书可借数
    var free_sl2 = curForm.getItem('free_sl2');    //合同可借数
    var free_sl3 = curForm.getItem('free_sl3');    //验收证可借数
    var yjxm_phid = curForm.getItem('yjxm_phid');    //业绩项目

    var curGrid1 = Ext.getCmp('p_form0000000908_d1grid');
    var curGrid2 = Ext.getCmp('p_form0000000908_d2grid');


    //3.通用设置
    tbxm_or_yt.setVisible(false);     //默认不可见
    curForm.on('dataready', function () {  //将全状态中的change事件重复一遍，加载完成后再执行一遍
        var sy_v = sy.getValue()
        if (sy_v == '1') { //为投标是
            tbxm.setVisible(true);     //可见
            tbxm_or_yt.setVisible(false);     //不可见

        } else if (sy_v == '2' || sy_v == '3') { //备案或项目过程管理
            tbxm.setVisible(false);     //可见
            tbxm_or_yt.setVisible(true);     //可见
        }
    });

    free_sl1.on('change', function () {  //颜色
        if (free_sl1.getValue() > 0) {
            NG.setFieldBodyColor('tzszt', 'rgb(0,250,0)')
        } else {
            NG.setFieldBodyColor('tzszt', 'rgb(250,0,0)')
        }
    });

    free_sl2.on('change', function () {  //颜色
        if (free_sl2.getValue() > 0) {
            NG.setFieldBodyColor('htzt', 'rgb(0,250,0)')
        } else {
            NG.setFieldBodyColor('htzt', 'rgb(250,0,0)')
        }
    });

    free_sl3.on('change', function () {  //颜色
        if (free_sl3.getValue() > 0) {
            NG.setFieldBodyColor('yszszt', 'rgb(0,250,0)')
        } else {
            NG.setFieldBodyColor('yszszt', 'rgb(250,0,0)')
        }
    });

    //4 全状态监听事件。如需要根据某值变化显示不同的颜色，需要放到dataready之外建立change监听，加载数据时触发。

    //5 *********************新增及编辑状态****************************
    if (otype == 'add' || otype == 'edit' || otype == 'copy') {

        //5.1 ----------------生成标题---------------------------
        NG.bindMasterExp('title', "{tbxm_or_yt}+'借资料'");

        //(1) 【项目借次】更新
        jycs.on('change', function (res) {
            if (jycs.getValue() > 1) {
                NG.updateMasterFieldExp('title', "{tbxm_or_yt}+'第'+{jycs}+'次借资料'");
            }
        })


        //5.4-------------------表头监听-------------------------------------
        //(1) 【事由】更新
        sy.on('helpselected', function () {  //将全状态中的change事件重复一遍，加载完成后再执行一遍
            var sy_v = sy.getValue()
            if (sy_v == '1') { //为投标是
                tbxm.userSetMustInput(true);  //必输
                tbxm.setVisible(true);     //可见
                tbxm_or_yt.setVisible(false);     //不可见

            } else if (sy_v == '2' || sy_v == '3') { //备案或项目过程管理
                tbxm.userSetMustInput(false);  //必输
                tbxm.setVisible(false);     //可见
                tbxm_or_yt.setVisible(true);     //可见
            }
        });


        //(2) 【投标项目】更新
        tbxm.on('helpselected', function (res) {
            var res = NG.callServer('根据招标公告phid获取项目名称及次数', { 'phid': tbxm.getValue() });
            NG.setValue('tbxm_or_yt', res.record[0].xmmc);
            NG.setValue('jycs', res.record[0].cs);
        })

        //(3) 【业绩项目】更新
        yjxm_phid.on('helpselected', function (res) {
            var fxm_phid = yjxm_phid.getValue() || 0;
            NG.addMasterBySql("根据业绩项目phid获取可借用状态", { "phid": fxm_phid })  //调用功能元数据一次赋值多个字段：……
        })

        //(4) 【中标通知可借数】更新
        free_sl1.on('focus', function (res) {
            curTabPanel.setActiveTab('p_form0000000908_dgrid');
            var fxm_phid = yjxm_phid.getValue() || 0;
            if (free_sl1.getValue() > 0) {
                NG.addDetailByUser("根据pcid获取中标通知信息", { "pcid": fxm_phid }, "选择中标通知书", 1000, 400, "p_form0000000908_d");
                NG._getGrid("p_form0000000908_d").getView().refresh();
            };
        })
        //(5) 【合同可借数】更新
        free_sl2.on('focus', function (res) {
            curTabPanel.setActiveTab('p_form0000000908_d1grid');
            var fxm_phid = yjxm_phid.getValue() || 0;
            if (free_sl2.getValue() > 0) {
                NG.addDetailByUser("根据pcid获取合同版本信息", { "pcid": fxm_phid }, "选择合同版本通知书", 1000, 400, "p_form0000000908_d1");
                NG._getGrid("p_form0000000908_d1").getView().refresh();
            };
        })
        //(6) 【验收证书可借数】更新
        free_sl3.on('focus', function (res) {
            curTabPanel.setActiveTab('p_form0000000908_d2grid');
            var fxm_phid = yjxm_phid.getValue() || 0;
            if (free_sl3.getValue() > 0) {
                NG.addDetailByUser("根据pcid获取验收证书信息", { "pcid": fxm_phid }, "选择合同版本通知书", 1000, 400, "p_form0000000908_d2");
                NG._getGrid("p_form0000000908_d2").getView().refresh();
            };
        })
        //(7) 【经办人】更新
        empid1.on('helpselected', function (res) {
            lxrdh.setValue(NG.callServer("根据员工hr_phid获取电话号码", { "hr_phid": empid1.getValue() }, 'mobile1'));
        })


        //5.5 -------------------表体监听---------------------------------------
        //（6）监听【Store更新数据】
        curGrid.getStore().on('update', function (store, record, operation, modifiedFieldNames, eOpts) {  //手工修改时。监听单据体编辑状态，edit-编辑；add-增行；cellclick-点击

            if (modifiedFieldNames[0] == 'spyj') {
                if (record.get('spyj') == '2')
                    record.data.zt = '-1';  //当审批意见为不批准时，借用状态为不同意
            }
            NG._getGrid().getView().refresh();
        })

        curGrid1.getStore().on('update', function (store, record, operation, modifiedFieldNames, eOpts) {  //手工修改时。监听单据体编辑状态，edit-编辑；add-增行；cellclick-点击

            if (modifiedFieldNames[0] == 'spyj') {
                if (record.get('spyj') == '2')
                    record.data.zt = '-1';  //当审批意见为不批准时，借用状态为不同意
            }
            NG._getGrid('p_form0000000908_d1').getView().refresh();
        })

        curGrid2.getStore().on('update', function (store, record, operation, modifiedFieldNames, eOpts) {  //手工修改时。监听单据体编辑状态，edit-编辑；add-增行；cellclick-点击

            if (modifiedFieldNames[0] == 'spyj') {
                if (record.get('spyj') == '2')
                    record.data.zt = '-1';  //当审批意见为不批准时，借用状态为不同意
            }
            NG._getGrid('p_form0000000908_d2').getView().refresh();
        })

        //根据状态显示不同的颜色
        NG.setRowColor("{zt}", [{ 'key': '0', 'value': 'rgb(0,200,0)' }, { 'key': '1', 'value': 'rgb(255,0,0)' }, {
            'key': '2',
            'value': 'rgb(200,0,255)'
        }, { 'key': '-1', 'value': 'rgb(128,128,128)' }], "p_form0000000908_d")
        NG.setRowColor("{zt}", [{ 'key': '0', 'value': 'rgb(0,200,0)' }, { 'key': '1', 'value': 'rgb(255,0,0)' }, {
            'key': '2',
            'value': 'rgb(200,0,255)'
        }, { 'key': '-1', 'value': 'rgb(128,128,128)' }], "p_form0000000908_d1")
        NG.setRowColor("{zt}", [{ 'key': '0', 'value': 'rgb(0,200,0)' }, { 'key': '1', 'value': 'rgb(255,0,0)' }, {
            'key': '2',
            'value': 'rgb(200,0,255)'
        }, { 'key': '-1', 'value': 'rgb(128,128,128)' }], "p_form0000000908_d2")
    }
    ;

    //6 ***************新增状态***********************************
    if (otype == 'add' || otype == 'copy') {

        //(2)默认员工
        NG.setValue('empid1', NG.execServer('hr02_get_hrid_and_otherinf_by_fg3userid', { 'phid': $appinfo.userID || 0 }, 'hrid'))
    }

}

//（2）保存前多条件检查，含唯一性校验。
function beforeSaveEdit() {

    var a1 = NG.checkOnlySaveLocal(['zsbm'], "中标通知本表内重复", "p_form0000000908_d");
    var a2 = NG.checkOnlySaveLocal(['zsbm'], "承包合同版本本表内重复", "p_form0000000908_d1");
    var a3 = NG.checkOnlySaveLocal(['zsbm'], "验收证书本表内重复", "p_form0000000908_d2");

    var b1 = NG.checkDataDetail("zt!='1'", "有中标通知书已经被批准借出，请修改审批意见为【不同意】！", "p_form0000000908_d");
    var b2 = NG.checkDataDetail("zt!=1'", "有承包合同版本已被批准借给其他项目使用，请在审批意见中选择【不同意】！", "p_form0000000908_d1");
    var b3 = NG.checkDataDetail("zt!='1'", "有验收证书被批准借给其他项目使用，请在审批意见中选择【不同意】！", "p_form0000000908_d2");
    curToolbar.get('save').enable(true);
    return a1 && a2 && a3 && b1 && b2 && b3;  //都唯一才可保存，否则不能保存。
}

//（3）单据编辑页面审核前检测
function beforeVerifyEdit() {
    var b1 = NG.checkDataDetail("zt!='1'", "有中标通知书已经被批准借出，请修改审批意见为【不同意】！", "p_form0000000908_d");
    var b2 = NG.checkDataDetail("zt!='1'", "有承包合同版本已被批准借给其他项目使用，请在审批意见中选择【不同意】！", "p_form0000000908_d1");
    var b3 = NG.checkDataDetail("zt!='1'", "有验收证书被批准借给其他项目使用，请在审批意见中选择【不同意】！", "p_form0000000908_d2");
    return b1 && b2 && b3;  //都唯一才可保存，否则不能保存。
}

//11 单据列表操作
function allReadyList() {
    //curToolbar.get("copy").disable();  //获取列表界面工具栏，设置不可用 // add,edit,delete,view,refresh,copy,attachment附件，verify，print,close
    //NG.addDefaultQueryEx("month", -3);  //默认查询日期为最近的3个月
    NG.addDefaultQueryEx("year", -1);  //默认查询日期为最近1年月
}
